import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { OverlayModule } from '@angular/cdk/overlay';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { InputModule } from '../input/api';
import { ButtonModule } from '../button/api';
import { IconModule } from '../icon/api';
import { I18NModule } from '../core/i18n/api';
import { CalendarBaseModule } from '../core/calendar-base/api';
import { TimePickerModule } from '../time-picker/api';
import { DateRangePickerComponent } from './date-range-picker.component';
import { DatePickerPanelComponent } from './date-picker-panel.component';
import { DatePickerMonthComponent } from './date-picker-month.component';
import { DatePicker10YearComponent } from './date-picker-10year.component';
import { DatePickerYearComponent } from './date-picker-year.component';
import { DatePickerCalendarComponent } from './date-picker-calendar.component';
import { DatePickerComponent } from './date-picker.component';

const COMPONENTS = [
  DatePickerComponent,
  DatePickerCalendarComponent,
  DatePickerPanelComponent,
  DatePickerYearComponent,
  DatePicker10YearComponent,
  DatePickerMonthComponent,
  DateRangePickerComponent,
];

@NgModule({
  declarations: [...COMPONENTS],
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    InputModule,
    ButtonModule,
    IconModule,
    I18NModule,
    CalendarBaseModule,
    TimePickerModule,
    OverlayModule,
  ],
  exports: [...COMPONENTS],
})
export class DatePickerModule {}
